Out-of-store purchase routing systems, methods, and media

ABSTRACT

Systems, methods, and media for picking-up and delivering products are disclosed. Some embodiments route shoppers to acquire products for multiple customers orders from multiple suppliers using a variety of transportation modes. The transportation modes may differing maximum weight carrying and volume carrying capacities, maximum vehicle speeds. Moreover, some embodiments may account for a different number vehicles for each transportation mode and may further account for the availability of shoppers and vehicles.

CROSS REFERENCE TO RELATED APPLICATIONS AND INCORPORATION BY REFERENCE

The present application is a continuation of U.S. patent applicationSer. No. 16/563,357, filed on Sep. 6, 2019, which is a continuation ofU.S. patent application Ser. No. 14/218,319, filed on Mar. 18, 2014,which claims priority under 35 U.S.C. § 119(e) to U.S. ProvisionalApplication No. 61/802,790, filed on Mar. 18, 2013, the disclosures ofwhich are hereby incorporated by reference.

FIELD OF THE INVENTION

Certain embodiments of the present invention relate to systems, methods,and computer readable media that support the pickup and delivery ofproducts for a customer order. More specifically, certain embodiments ofthe present invention relate to systems, methods, and computer readablemedia for vehicle routing with respect to picking-up products forcustomer orders.

BACKGROUND

Customers commonly visit multiple stores in order to acquire productsthey wish to purchase. Visiting multiple stores, however, is generallymore time consuming than visiting a single store that stocks allproducts that the customer wishes to purchase. Some companies offerdelivery of products in certain limited product categories, such ascertain food products that may be selected and paid for online anddelivered by vehicles dedicated to delivering products purchased fromthat particular company (e.g., groceries from Peapod). In suchinstances, the customer has access only to the inventory carried by thatparticular company, and must still shop elsewhere for missing products.Furthermore, delivery from such stores generally takes a day or longer.As a result, if a customer desires immediate or near immediatepossession of a product, the customer may be forced to visit one or morelocal merchants in order to find the desired products. However, forcustomers who are willing to wait, those customers may order from suchsuppliers and have the desired products shipped via commercial carriers(e.g., U.S. Postal Service, UPS, FedEx, and the like).

Further limitations and disadvantages of conventional and traditionalapproaches will become apparent to one of skill in the art, throughcomparison of such systems with some aspects of the present invention asset forth in the remainder of the present application with reference tothe drawings.

BRIEF SUMMARY

Systems, methods, and computer readable media directed to routing avariety of vehicles to pickup and deliver products from one or morecustomer orders are substantially shown in and/or described inconnection with at least one of the figures, and are set forth morecompletely in the claims

Advantages, aspects, and novel features of the present invention, aswell as details of an illustrated embodiment thereof, will be more fullyunderstood from the following description and drawings.

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 shows an order fulfillment system in accordance with an exampleembodiment of the present invention.

FIG. 2 shows a flowchart for an example order fulfillment method thatmay be implemented by the system of FIG. 1 .

FIGS. 3A-3D shows another example order fulfillment method that may beimplemented by the system of FIG. 1 .

FIG. 4 provides another depiction of an order fulfillment method thatmay be implemented by the system of FIG. 1 .

FIG. 5 depicts stacking multiple routes on a vehicle for executionduring a shopping window.

FIG. 6 depicts stacking multiple routes on multiple vehicles forexecution during a shopping window.

DETAILED DESCRIPTION

Certain embodiments of the present invention relate to systems, methods,and computer readable media that support the pickup and delivery ofproducts for a customer order. More specifically, certain embodiments ofthe present invention relate to a system, method, or computer readablemedium that route a variety of vehicles and/or shoppers to pickupproducts of one or more customer orders while accounting for varyingconstraints of the available vehicles and/or shoppers.

As utilized herein, the terms “exemplary” or “example” means serving asa non-limiting example, instance, or illustration. As utilized herein,the term “e.g.” introduces a list of one or more non-limiting examples,instances, or illustrations.

FIG. 1 is a block diagram of an exemplary order fulfillment system 100that incorporates one or more aspects of the present invention. Asillustrated in FIG. 1 , the system 100 may include an e-commerceplatform 150 that comprises one or more web servers 154, one or moredatabase servers 156, and one or more application servers 152. Theelements of the e-commerce platform 150 may be interconnected, and maysingly or as a group be connected to Internet 105 via communication link107, which may employ any suitable combination of wired or wireless datacommunication links.

As shown, the e-commerce platform 150 may further have one or moreassociated vehicles 158. The vehicles 158 may include vehicles ofdifferent modes of transportation (e.g., car, bicycle, truck) that havedifferent weight carrying capacities, different travel speeds, etc. Asexplained in greater detail below, the e-commerce platform 158 maygenerate routes for the vehicles 158 in order to acquire products fromother stores in order to fulfill customer orders.

The system 100 may also include personal computers (PCs) 110, 115, whichare connected to the Internet 105 by communications links 108, 109,respectively, which may be any suitable combination of wired or wirelessdata communication links. PCs 110, 115 may be any of, for example, adesktop computer, a laptop computer, a notebook computer, a netbookcomputer, a tablet computer, or any other electronic device havingcapabilities suitable for accessing the Internet 105 from, for example,a home, a small business, or any private or public area having suitablesupport for communications links 108, 109.

In addition, the system 100 may further include a user communicationdevice 125 that may comprise, for example, a tablet computer, smartphone, or other handheld electronic device capable of communicating withthe e-commerce platform 150 via a wireless network 120, a communicationlink 127, and the Internet 105. The communication device 125 of FIG. 1may include suitable software applications, hardware, and logic topermit the communication device 125 to display received web pages andother forms of digital information on a display of the communicationdevice 125, and suitable user interface (UI) elements to permit a userto interact with the e-commerce platform 150 using tactual, speech, andother forms of input. The communication device 125 may be capable ofhaving native applications installed on the communication device fromrepositories accessible as “app stores,” for example.

The wireless network 120 may support communication of digitalinformation using any suitable wireless access technology. For example,the wireless network 120 may include any combination of short-range,long range, Wi-Fi, cellular, personal communication system (PCS),Bluetooth, and/or Near Field communication (NFC) wireless accesstechnologies, to name a few.

The system 100 of FIG. 1 may also include a portable telephone 130 thatmay be capable of communicating over one or more of a cellular, PCS,Wi-Fi, or other wireless communication network. The portable telephone130 may have more limited yet sufficient functionality to interact withthe e-commerce platform 150 than that available from the PCs 110, 115and the communication device 125.

In addition, the system 100 of FIG. 1 may further include a kiosk device135. The kiosk device 135 may permit customers in retail and publicvenues to access the e-commerce platform 150. The kiosk device 135 maybe designed for indoor or outdoor use. The kiosk device 135 may also belinked to the e-commerce platform 150 via a communication link 137 andInternet 105, as shown, or may communicate directly with the e-commerceplatform 150 using any other suitable wired or wireless technology. Thekiosk 135 may have functionality that is equivalent, greater than, orless than the personal computers 110, 115, the communications device125, and the cellular telephone 130.

The system 100 may also include a kiosk 164 that may provide customerswithin a retail establishment 160 with access to the e-commerce platform150. The retail establishment 160 may be, for example, a“brick-and-mortar” business associated with the operator or sponsor ofthe e-commerce platform 150 The system 100 may also include acommunication device 162 that may belong to, or be loaned to a customerof the retail establishment 160, permitting the customer to, forexample, electronically access information about products and/orservices available at the retail establishment 160, at other businesslocations of the operator of the retail establishment 160, or at otherbusinesses operated by, for example, the operator, or businesses thatpartner with the operator of the e-commerce platform 150. Communicationdevices within the retail business 160 such as, for example, thecommunication device 162 and the kiosk 164 may communicate with thee-commerce platform 150 via the Internet 105 and the communication link167, which may be, for example, any suitable combination of wired and/orwireless communication technologies.

In a representative embodiment, customers may place orders for productswith a merchant, in which some of the products may be available from themerchant, and some may not be available from the merchant. This may bedue to a product being out-of-stock, or because the merchant simply doesnot carry a particular product. In a representative embodiment,fulfilling a customer order may entail acquiring some products from thestore of the merchant with whom the order was placed. The productsacquired from the store of the merchant with whom the order was placedmay be referred to herein as “in-store purchases.” Fulfilling otherproducts from the customer order may entail acquiring products fromsources outside of the store of the merchant with whom the order wasplaced. The products acquired from sources outside of the store of themerchant with whom the order was placed may be referred to herein as“out-of-store” purchases.

FIG. 2 is a high-level flowchart illustrating one example of an orderfulfillment method 200 that may be implemented by the order fulfillmentsystem 100. In general, system 100 per the method 200 may fulfill one ormore customer orders received by a merchant, where some or all of theordered products may not be available from the merchant. With respect tounavailable products, the system 100 may acquire such products fromother merchants and deliver the products acquired from such othermerchants along with those products that are available from the merchantto the customer.

Per the method 200, the system 100 may attempt to route vehicles 158and/or shoppers to the various suppliers in a manner that addressesresource constraints such as, for example, the types of vehicles 158available to the shopper(s), the weight carrying capacity of theavailable vehicles 158, the volume carrying capacity of the availablevehicles 158, and the maximum speed of the available vehicles 158.

To this end, the e-commerce platform 150 of the system 100 may receiveat 205 one or more customer orders that each include one or moreproducts. The e-commerce platform 150 may receive the customer ordersover one or more periods of time during each day such as, for example,morning (e.g., 8:00 am to 12:00 PM), afternoon (e.g., 12:00 pm to 5:00pm), and overnight (e.g., 5:00 pm one day to 8:00 am the next day). At210, the e-commerce platform 150 may break each customer order into itsrespective products, where the products from the customer ordersreceived during a particular period may collectively form a collectionof products. At 215, the commerce platform 150 may identify acorresponding supplier for each product in the collection of products.At 220, the e-commerce platform 150 may sort the collection of productsby supplier to produce a corresponding product list for each identifiedsupplier.

At 225, the e-commerce platform 150 may select a corresponding mode oftransportation for each identified supplier, from a plurality oftransportation modes suitable for acquiring or “picking-up” the productson the corresponding product list. Some products may be available fromthe merchant, while other products may be acquired from suppliers otherthan the merchant fulfilling the customer order. Possible modes oftransportation used to acquire the products include, for example, foot,taxi, bicycle, car, truck, and unmanned drone to name just a few. At230, the e-commerce platform 150 may calculate a travel route using oneor more characteristics of the selected mode of transportation. In arepresentative embodiment, more than one instance of each available modeof transportation may be available and may be employed to acquire theproducts in the collection. The e-commerce platform 150 may calculate orotherwise determine the travel routes for each instance of each mode oftransportation in use.

Finally, at 235 of FIG. 2 , the e-commerce platform 150 may present thedetermined routes to shoppers and/or drones which are tasked withcarrying out collecting products per the determined routes. Inparticular, the e-commerce platform 150 may provide a shopper with amode of transportation, a travel route, and one or more product listsalong with corresponding suppliers from which to acquire the respectiveproducts. For example, multiple individuals at the merchant fulfillingthe orders, referred to herein as “shoppers,” may each be assigned amode of transportation and given one or more products lists, which theyuse to acquire the products that together are used to fulfill thecollection of products and the customer orders.

It should be noted that although the flowchart of FIG. 2 does not loopso as to operate on a repeated basis, a representative embodiment of thesystem 100 may be arranged to employ the concepts disclosed in FIG. 2and this disclosure in other ways. For example, the system 100 mayinclude looping over various variables to process incoming orders fromcustomers over a period of time such as an hour, a day, a week, a year,or any other suitable time frame.

In a representative embodiment, the e-commerce platform 150 may holdorders received from customers until designated times of the day. Atthose times, the products for those pending orders, that may be referredto herein as a “batch,” may be acquired or gathered, in what may bereferred to herein as a “shopping window.” For example, in onerepresentative embodiment, the e-commerce platform 150 may hold customerorders such that shopping for the product products of the held customerorders is performed during three “out-of-store” shopping windows. Inparticular, the commerce platform 150 may hold customer orders receivedduring a first order period (e.g., 5:00 p.m. to 8:00 a.m. the followingday) for out-of-store shopping during a first shopping window (e.g.,8:00 a.m. to 10:00 a.m.), hold customer orders received during a secondorder period (e.g., 8:00 a.m. and 12:00 p.m.) for out-of-store shoppingduring a second shopping window (e.g., 12:00 p.m. to 2:00 p.m.), andhold customer orders received during a third order period (e.g., 12:00p.m. and 5:00 p.m.) for out-of-store shopping during a third shoppingwindow from 5:00 p.m. to 7:00 p.m. It should be noted that the timesgiven above are for illustrative purposes only, as a greater or lessernumber of ordering periods and/or out-of-store shopping windows spanningother intervals of time of the day may be employed without departingfrom the spirit and scope of the present invention.

In the following discussion, merchants or stores may be of two types.The first type is what may be referred to herein as a “fulfillment”merchant/store. The fulfillment merchant/store may receive customerorders, and route shoppers and/or vehicles per the methods describedherein. The second type of merchant/store may be referred to herein as a“supplier” or “satellite store.” In the following discussion, satellitestores are not the fulfillment merchant/store for the particularcustomer orders, and merely act as a source of the products that thefulfillment merchant/store does not have in their available inventory.

The routing of vehicles through a set of destinations has been studiedat length, and there are a number of algorithms that may be used todetermine the choice of ordering of the visits to the set of destinationlocations. Those algorithms assume the use of one mode of transportationfor travel to all of the locations in the set of travel destinations.The discussion that follows makes reference to such an algorithmreferred to herein as the “savings algorithm,” which may be used todevelop a set of routes. Such an algorithm is described in “The savingsalgorithm for the vehicle routing problem,” by H. Paessens, EuropeanJournal of Operational Research 34 (1988) pages 336-344, which is herebyincorporated herein by reference, in its entirety.

A representative embodiment of the system 100 goes beyond suchalgorithms in developing a set of routes in the presence of certainresource constraints. The algorithms to be described below enable acomputer-based system such as, for example, e-commerce platform 150 todevelop a set of routes for a number of shoppers and/or vehicles thatare subject to various resource constraints. Such resource constraintsmay include the use by each shopper of one of a number of differentmodes of transportation, each mode of transportation having specificweight and volume carrying capacities, and speed of travel.

FIGS. 3A through 3D show a flowchart of one example of an orderfulfillment method 300 implemented by the order fulfillment system 100.In particular, per the method 300, the order fulfillment system 100 maydevelop a set of routes for shoppers and/or vehicles that are used toacquire products from satellite stores and deliver such products tocustomers in accordance with a representative embodiment. The examplerouting method 300 of FIGS. 3A-3D may support the use of multipledifferent modes of transportation to acquire the products for one ormore customer orders.

At 305, the system 100 may determine whether the current timecorresponds to the start of a shopping window. As described above, thesystem 100 in a representative embodiment may define a plurality ofshopping windows during which shoppers and/or vehicles acquire productsfrom satellite stores in order to fulfill received customer orders.During such shopping windows, a shopper may travel to a satellite storeto acquire the products that are not presently available at the orderfulfillment store. If the system 100 determines that a shopping windowis not scheduled to start at the current time, the system 100 mayproceed to 310 and check whether a new customer order has been received.If one or more customer orders have been received, the system 100 at 315may break each of the pending customer orders into their individualproducts, and add those products to a collection of products to beacquired during the next shopping window. The system 100 may then returnto 305 in order to check again for the start of a shopping window.

If, however, the system 100 at 310 determines that a new customer orderhas not been received, then the system 100 may proceed to 385 of FIG. 3Dand determine whether the current time corresponds to the end of ashopping window. If the system 100 determines that current time does notcorrespond to the end of a shopping window, then the system 100 mayreturn to 305 of FIG. 3A to check again for the start of a shoppingwindow. Otherwise, the system 100 may proceed to 390 to determinewhether all vehicles 158 that were assigned routes during the shoppingwindow have returned.

If all vehicles 158 have not returned, then the system may return to 305of FIG. 3A to check again for the start of a shopping window. Otherwise,the system 100 at 395 may assemble the customer orders associated withthe shopping window using the products acquired from the satellite storeand available products of the order fulfillment store. The system 100 at397 may further schedule and/or otherwise cause the assembled orders tobe delivered to the respective customers. To this end, the system 100may cause the orders to be loaded upon delivery trucks of the orderfulfillment store and scheduled for deliver to the respective customers.Alternatively and/or additional, the system 100 may provide some or allof the collected products to commercial shippers for delivery to therespective customers. After scheduling delivery of the collectedproducts, the system 100 may return to 305 to check again for the startof a shopping window.

If the system 100 at 305 determines that a shopping window has begun,the system 100 may proceed to 320 in order to identify a correspondingsupplier or satellite store for each product in the collection. Thesystem 100 at 325 may set a current mode of transportation to the typeof vehicle with the greatest weight carrying capacity. At 330, thesystem 100 may sort the collection by supplier or satellite store toproduce a corresponding product list for each supplier or satellitestore. At 340 of FIG. 3B, the system 100 may calculate a set of routesfor acquiring products from suppliers or satellite stores. Inparticular, the system 100 may calculate the set of routes using thevehicle capacity of the current mode of transportation and the “savingsmethod” or some other vehicle routing method. As a result of using thevehicle capacity, each generated route requires less than or equal tothe capacity of the current mode of transportation.

At 345, the system 100 may sort the generated set of routes in order ofdecreasing weight of products acquired on the route. The system 100 at350 may then proceed with assigning the route with the highest productweight to a vehicle 158 of the current mode of transportation. At 355,the system may remove products assigned to the vehicle 158 from thecollection of products to be collected from the suppliers or satellitestores.

If after such removal of products, the system 100 determines at 360 thatthe collection of products is empty, then the system 100 at 380 maypresent information regarding the assigned routes to each of thevehicles 158 and shoppers so that the vehicles and shoppers may collectthe products per their respective routes. Otherwise, the system 100 mayproceed to 365 of FIG. 3C and determine whether there are additionalvehicles of the current mode of transportation. If there are additionalvehicles of the current mode of transportation, then the system 100 mayreturn to 350 of FIG. 3B in order to assign the next heaviest route ofthe generated routes to one of the remaining vehicles of the currentmode of transportation.

If there are no additional vehicles 155 of the current mode oftransportation, then the system 100 at 370 may determine whether thereare additional modes of transportation available. If there areadditional modes of transportation available, then the system 100 at 375may set the current mode of transportation to that with the nextgreatest weight carrying capacity. The system 100 may then return to 340in order to calculate a new set of routes which use the vehicle weightcarrying capacity of the newly selected mode of transportation. However,if there are no additional modes of transportation available, then thesystem 100 in one embodiment may generate at 377 a warning thatindicates that the system 100 is unable to collect all products duringthe current shopping window.

The system 100 via the above routing method 300 assume that each vehicle158 is assigned a single route during the shopping period. However, avehicle 158 may be able to complete multiple routes during a singleshopping window. The following with respect to FIGS. 4-6 provides anexplanation of how the system 100 may stack routes upon a single vehicle158 to obtain a better utilization of the vehicles at hand. Moreover,the system 100 via the above routing method 300 assumed there were atleast as many shoppers as there were routes. The following with respectto FIGS. 4-6 further explains of how the system 100 may address thepossibility of there not being an available shopper to execute the routeat the time of creation.

Referring now to FIG. 4 , another order fulfillment method 400 is shown,which may be used by the system 100. The order fulfillment method 400and following description assumes three modes of transportation, car,bicycle, and foot. However, those of ordinary skill in the art readilyappreciate that the method 400 may be implemented using a differentnumber of modes of transportation as well as different types oftransportation. As shown, the system 100 at 405 may receive customerorders, and break up such orders at 410 to obtain a collection ofpending products 415 which are to be collected from satellite stores.The system 100 may periodically call at 420 a vehicle routing method 425such as, for example, a savings method in order to generate a set ofroutes. In particular, the system 100 may use as input to the vehiclerouting method 425: a set of products 415 to be collected; a set ofsatellite stores from which to collect the products; and a chosen modeof transportation. From such inputs, the system 100 may generate via thevehicle routing method 425 at set of routes appropriate for execution byvehicles 158 of the chosen mode of transportation.

The system 100 at 430 may sort the routes by weight to obtain a sortedlist of routes 435. At 440, the system 100 may iterate through thevehicle inventory 445 to determine whether a vehicle 158 of the chosenmode of transportation is available. If a vehicle 158 is available, thesystem 100 may assign a route from the sorted list of routes 435 to thechosen mode of transportation. For example, given the vehicle constraintof 1 car and 5 bicycles, the system 100 may pick, in descending order bytotal weight, some routes from the sorted set of routes 435. Inparticular, given 1 car in total, the system 100 may pick a route withthe highest weight and assign the chosen route to the car mode. Inresponse to assigning the route, the system 100 may remove at 454 theproducts associated with the assigned route from the collection ofpending products 405. The system 100 may resolve the routing problem forthe remaining pending products 405 by recalling at 452 or 454 thesavings method 425. If the system 100 at 455 determines there arefurther modes of transportation, the system 100 may repeat the processfor the mode of transportation with the next heaviest weight carryingcapacity. Thus, the system 100 may determine the total number ofshoppers/routes needed for received customer orders. The system 100implicitly minimizes the number of shoppers or routes since the system100 prefers available cars to the other modes and assign routes withhigher total weight to cars. Note that the above results in the system100 causing all routes to be executed at the beginning of shoppingwindows. In particular, the system 100 per the above does not stackroutes in a time window.

However, as explained in more detail below, the system 100 may stackroutes and reuse vehicles in a shopping window. Via such stacking, thesystem 100 may reduce the number of shoppers needed by better utilizingfaster modes of transportation. Such stacking is illustrated in FIG. 5 .

Besides stacking routes, the system 100 may further account for a lackof shoppers. In particular, the system 100 may maintain a route buffer460 to hold the pending routes. In particular, the system 100 may createa route and assign the route to a mode of transportation even though thesystem 100 at 465 determines that there shopper is not currentlyavailable. In particular, the system 100 may make such determinationbased upon a buffer or list 470 of shoppers via which the system 100 maytrack all shoppers. For example, the system 100 via buffer 470 may trackhow many shoppers are busy at any moment and when busy shoppers finishshopping and become idle. The system 100 may place created routes intothe route buffer 460 if the route is produced, but cannot be executedright away. The system 100 may maintain the routes in the buffer 460 ina first-in-first-out fashion. At any time when a route is being executed475, the system 100 may update the shopper buffer 470 to indicate thatthe total number of busy shoppers has increased by 1. Likewise, thesystem 100 may decrease the total number of busy shoppers by 1 whenevera busy shopper finishes 480 shopping and becomes idle again. At the sametime, when a shopper becomes idle after coming back from shopping, thesystem 100 may select the first route in the route buffer 460 and assignthe selected route to the newly-idled shopper. The system 100 mayfurther record the total time the route remained in the buffer 460. Bytracking the total time in the buffer 460, the system 100 may ascertainthe maximum number of busy shoppers over the time horizon and themaximum waiting time. The system 100 may utilize such information todetermine whether there is sufficient shoppers to meet a certain levelof service or whether additional shoppers should be added.

As mentioned above, the system 100 may further stack routes overtransportation vehicles. For example, the system 100 may first startwith the car mode if the unit of car is positive in the vehicleinventory 445. The system 100 may solve for a solution, i.e., a set ofroutes, by assuming a car mode and calling the vehicle routing method425. Then, the system 100 may iterate over the set of computed routesand schedule execution of routes through either a new route or stackingon an existing route. Next, the system 100 may remove allproducts/stores covered by car mode from the pending product set 415.The system 100 may then switch to the bicycle mode and resolve theproblem for the remaining product in the set 415. Finally, the system100 may repeat the process for the foot mode. The system 100 may keepstacking on existing routes and until a further route would break theshopping window limit for the vehicle mode.

For example, the system 100 may receive a stream of orders for which thevehicle routing method 425 determines may be collected using 4 routes(e.g., routes CR1, CR2, CR3, CR4) if executed via car mode. The system100 may iterate over the 4 routes and determine that a single car mayexecute route CR4, then route CR1, and then route CR3 in the shoppingwindow. See, e.g., FIG. 5 . In other words, a single shopper driving asingle car may come and go within the duration of the specified shoppingwindow (e.g., 2-hour) and finish shopping routes CR4, CR1, and CR3.Thus, if system 100 has a single car at its disposal, then route CR2cannot be executed by the car within the shopping window. In such ascenario, the products/stores associated with route CR2 remain in thepending set 405 after assigning routes to the car mode.

The system 100 may then recall the vehicle routing method 425 usingbicycle mode in order to generate routes to be executed by bicycle. As aresult of executing the vehicle routing method 425 using bicycle mode,the system 100 may determine that the pending product set 425 may becollected using 4 routes (e.g., routes BR1, BR2, BR3, BR4) if executedby bicycle. In particular, the system 100 may determine that routes BR1and BR3 may be stacked and executed by a single bicycle during theshopping window. Similarly, the system 100 may determine that routes BR2and BR4 may be executed by a single bicycle during the shopping window.Thus, instead of using 4 cars to execute the original routes CR1, CR2,CR3, CR4, the system 100 was able to assign routes to collect thepending products 415 that permitted such products to be collected withinthe shopping window by using a single car and two bicycles.

Although devices, methods, and systems according to the presentinvention may have been described in connection with a preferredembodiment, it is not intended to be limited to the specific form setforth herein, but on the contrary, it is intended to cover suchalternative, modifications, and equivalents, as can be reasonablyincluded within the scope of the invention as defined by this disclosureand appended diagrams.

Accordingly, the present invention may be realized in hardware,software, or a combination of hardware and software. The presentinvention may be realized in a centralized fashion in at least onecomputer system, or in a distributed fashion where different elementsare spread across several interconnected computer systems. Any kind ofcomputer system or other apparatus adapted for carrying out the methodsdescribed herein is suited. A typical combination of hardware andsoftware may be a general-purpose computer system with a computerprogram that, when being loaded and executed, controls the computersystem such that it carries out the methods described herein.

The present invention may also be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which when loaded in a computer systemis able to carry out these methods. Computer program in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

While the present invention has been described with reference to certainembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted withoutdeparting from the scope of the present invention. In addition, manymodifications may be made to adapt a particular situation or material tothe teachings of the present invention without departing from its scope.Therefore, it is intended that the present invention not be limited tothe particular embodiment disclosed, but that the present invention willinclude all embodiments falling within the scope of the appended claims.

What is claimed is: 1-18. (canceled)
 19. A system, comprising: one ormore processors configured to: receive customer orders from a pluralityof customers, wherein each customer order requests one or more productsfrom one or more suppliers; select a first mode of transportation from aplurality of modes of transportation; assign first routes to vehicles ofthe selected first mode of transportation according to a first vehiclerouting algorithm and a first vehicle carrying capacity; and in responseto a quantity of first routes exceeding a quantity of vehicles of theselected first mode of transportation: identify a plurality of productsnot assigned to a vehicle; select a second mode of transportation fromthe plurality of modes of transportation; and assign second routes tovehicles of the selected second mode of transportation according to asecond vehicle routing algorithm and a second vehicle carrying capacity.20. The system of claim 19, wherein the one or more processors areconfigured to: determine whether all of the products have been acquiredfrom the suppliers; and request delivery of the products to respectivecustomers in response to determining that all of the products have beenacquired.
 21. The system of claim 19, wherein the one or more processorsare configured to: generate the first routes according to a maximumvolume carrying capacity and a maximum weight carrying capacity of thefirst mode of transportation; and generate the second routes accordingto a maximum volume carrying capacity and a maximum weight carryingcapacity of the second mode of transportation.
 22. The system of claim19, wherein the one or more processors are configured to: sort the firstroutes by total weight of products to be acquired by each respectivefirst route; assign routes of the first routes to the vehicles of theselected first mode of transportation in decreasing order of totalweight of products to be acquired via the respective first route; sortthe second routes by total weight of products to be acquired by eachrespective second route; and assign routes of the second routes tovehicles of the selected second mode of transportation in decreasingorder of total weight of products to be acquired via the respectivesecond route.
 23. The system of claim 19, wherein the one or moreprocessors are configured to: assign a plurality of routes from thefirst routes to a first vehicle of the selected first mode oftransportation if the first vehicle is capable sequentially completingeach of the plurality of routes within a specified shopping window. 24.A method, comprising: using one or more processors for: receivingcustomer orders from a plurality of customers, wherein each customerorder requests one or more products from one or more suppliers;selecting a first mode of transportation from a plurality of modes oftransportation; assigning first routes to vehicles of the selected firstmode of transportation according to a first vehicle routing algorithmand a first vehicle carrying capacity; and in response to a quantity offirst routes exceeding a quantity of vehicles of the selected first modeof transportation: identifying a plurality of products not assigned to avehicle; selecting a second mode of transportation from the plurality ofmodes of transportation; and assigning second routes to vehicles of theselected second mode of transportation according to a second vehiclerouting algorithm and a second vehicle carrying capacity.
 25. The methodof claim 24, comprising: determining whether all of the products havebeen acquired from the suppliers; and requesting delivery of theproducts to respective customers in response to determining that all ofthe products have been acquired.
 26. The method of claim 24, comprising:generating the first routes according to a maximum volume carryingcapacity and a maximum weight carrying capacity of the first mode oftransportation; and generating the second routes according to a maximumvolume carrying capacity and a maximum weight carrying capacity of thesecond mode of transportation.
 27. The method of claim 24, comprising:sorting the first routes by total weight of products to be acquired byeach respective first route; assigning routes of the first routes to thevehicles of the selected first mode of transportation in decreasingorder of total weight of products to be acquired via the respectivefirst route; sorting the second routes by total weight of products to beacquired by each respective second route; and assigning routes of thesecond routes to vehicles of the selected second mode of transportationin decreasing order of total weight of products to be acquired via therespective second route.
 28. The method of claim 24, comprising:assigning a plurality of routes from the first routes to a first vehicleof the selected first mode of transportation if the first vehicle iscapable sequentially completing each of the plurality of routes within aspecified shopping window.
 29. A non-transitory computer readable mediacomprising instructions that, in response to being executed, configure:one or more processors to: receive customer orders from a plurality ofcustomers, wherein each customer order requests one or more productsfrom one or more suppliers; select a first mode of transportation from aplurality of modes of transportation; assign first routes to vehicles ofthe selected first mode of transportation according to a first vehiclerouting algorithm and a first vehicle carrying capacity; and in responseto a quantity of first routes exceeding a quantity of vehicles of theselected first mode of transportation: identify a plurality of productsnot assigned to a vehicle; select a second mode of transportation fromthe plurality of modes of transportation; and assign second routes tovehicles of the selected second mode of transportation according to asecond vehicle routing algorithm and a second vehicle carrying capacity.30. The non-transitory computer readable media of claim 29, wherein theone or more processors are configured to: determine whether all of theproducts have been acquired from the suppliers; and request delivery ofthe products to respective customers in response to determining that allof the products have been acquired.
 31. The non-transitory computerreadable media of claim 29, wherein the one or more processors areconfigured to: generate the first routes according to a maximum volumecarrying capacity and a maximum weight carrying capacity of the firstmode of transportation; and generate the second routes according to amaximum volume carrying capacity and a maximum weight carrying capacityof the second mode of transportation.
 32. The non-transitory computerreadable media of claim 29, wherein the one or more processors areconfigured to: sort the first routes by total weight of products to beacquired by each respective first route; assign routes of the firstroutes to the vehicles of the selected first mode of transportation indecreasing order of total weight of products to be acquired via therespective first route; sort the second routes by total weight ofproducts to be acquired by each respective second route; and assignroutes of the second routes to vehicles of the selected second mode oftransportation in decreasing order of total weight of products to beacquired via the respective second route.
 33. The non-transitorycomputer readable media of claim 29, wherein the one or more processorsare configured to: assign a plurality of routes from the first routes toa first vehicle of the selected first mode of transportation if thefirst vehicle is capable sequentially completing each of the pluralityof routes within a specified shopping window.